package com.molichuxing.gateway.bff.goods.services;

import com.molichuxing.framework.dto.Paged;
import com.molichuxing.gateway.bff.goods.entity.request.create.GoodsExclusiveCreateVo;
import com.molichuxing.gateway.bff.goods.entity.request.create.GoodsSubscribeCreateVo;
import com.molichuxing.gateway.bff.goods.entity.response.GoodsBaseVo;
import com.molichuxing.gateway.bff.goods.entity.response.GoodsDealerVo;
import com.molichuxing.gateway.bff.goods.entity.response.GoodsDetailVo;
import com.molichuxing.gateway.bff.goods.entity.response.GoodsVo;
import com.molichuxing.services.infrastructure.dto.response.GoodsDealerDto;
import com.molichuxing.services.property.GoodsDealerStatusEnum;

import java.util.List;
import java.util.Map;

/**
 * 商品授权相关bff
 * 
 * @author yixuelin
 * @date 2019年8月13日
 *
 */
public interface GoodsAuthBffService {

	/**
	 * 根据商品ID获取未授权和已授权的经销商
	 * @param goodsId
	 * @param dealerName
	 * @param cityId
	 * @param status
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public Paged<GoodsDealerVo> getDealerPage(Integer goodsId, String dealerName, Integer cityId, Integer status, int pageNum, int pageSize);

	/**
	 * 根据商品ID获取未授权和已授权的经销商
	 * @param goodsId
	 * @param areaId
	 * @param areaType
	 * @param status
	 * @return
	 */
	public List<GoodsDealerVo> getDealerList(Integer goodsId, Integer areaId, Integer areaType, Integer status);

	/**
	 * 设置商品和经销商的分销状态
	 * @param goods
	 * @param dealerId
	 * @param status
	 * @return
	 */
	public Boolean settingGoodsDistribution(Integer goods, Integer dealerId, Integer status);

	/**
	 * 授权商品和分销商的关系
	 * @param goodsId
	 * @param dealerIds
	 * @return
	 * @throws Exception
	 */
	public Boolean createGoodsDealer(Integer goodsId, List<Integer> dealerIds) throws Exception;

}
